<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Git学习笔记</title>
    <link rel="stylesheet" href="./gitcontent.css">
</head>
<body>
    <div class="container">
        <header>
            Git 学习笔记
        </header>
        <article>
            <h2>四、Git多人单分支集成协作时的常见场景</h2>
            <section>
                    <h3>不同人修改了不同文件如何处理</h3>
                    <ul>
                        <li>
                            <ol>
                                <li>github建分支</li>
                                <li>clone到本地</li>
                                <li>查看本地分支（git branch -av）后</li>
                                <li>在本地基于git新建分支建（git checkout -b 跟远端分支同名 远端分支路径，如：git chechout -b reature/add_git_commands origin/reature/add_git_commands，基于远端分支新建本地分支同时切换到这条分支）</li>
                                <li>提交后可以到GitHub上查看</li>
                                <li>不同人修改了不同文件一方提交后，另一方没有及时更新并提交会报‘fast-forwards’，接下来用 git fetch 名，查看是否有跟新</li>
                                <li>有更新时用 git branch -av查看,会有 [ahead 1,behind 1] 提示</li>
                                <li>用 git merge 分支 合并</li>
                                <li>git push 名</li>
                            </ol>
                        </li>
                    </ul>
            </section>
            <section>
                <h3>不同人修改了同文件的不同区域如何处理</h3>
                <ul>
                    <li>
                        <ol>
                            <li>当提交是已有人先提交，会提示‘fast-forwards’</li>
                            <li>git fetch 会提示 [ahead 1,behind 1]</li>
                            <li>git merge  commitId | 分支</li>
                            <li>git push</li>
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>不同人修改了同文件的同一区域如何处理</h3>
                <ul>
                    <li>
                        <ol>
                            <li>修改同一区域后，后提交一方会提示‘fast-forwords’</li>
                            <li>当 git merge  commitId | 分支 会提示 ‘already up tu date’</li>
                            <li>git pull 会有 ‘Auto-merging ……’ 提示</li>
                            <li>图形化处理或者命令行处理 vi 文件，修改并保存</li>
                            <li>git status ，仔细阅读提示，git merge --abort the meage 是返回的意思</li>
                            <li>然后 git commit -am''</li>
                            <li>然后即可提交</li>
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>同时变更了文件名和文件内容如何处理</h3>
                <ul>
                    <li>
                        前提：一方更改文件名并提交了，另一方更改了文件内容
                        <ol>
                            <li>git pull</li>
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>把同一文件改成了不同的文件名如何处理</h3>
                <ul>
                    <li>
                        前提：一方已经更改了文件名已提交，另一方也更改了并提交
                        <ol>
                            <li>后提交的一方会提醒不是‘fast-forwards’</li>
                            <li>git pull 后，ls -al 发现有两个文件</li>
                            <li>diff 两个文件，没返回消息；git status查看状态</li>
                            <li>经商议后决定保留，git rm 删除一个原文件和另一个文件，然后git status 查看</li>
                            <li>然后提交操作 git commit -am''</li>
                        </ol>
                    </li>
                </ul>
            </section>
        </article>
    </div>
</body>
</html>